home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1996 February
/
EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso
/
earcd
/
patches
/
lhlzxdr5.lha
/
LhaDirStoneD-handler
< prev
next >
Wrap
Text File
|
1995-11-18
|
3KB
|
105 lines
/*
$VER: LhaDirStoneD-handler 1.0 (18.11.95)
modified by Stone-D (Laga Hale)
Mail me at stone-d@eldar.demon.co.uk
Custom handler for LhADir.StoneD.
*/
options results
options failat 11
parse arg portname
parse var portname '.' portno
address value portname
if ~show('l','rexxsupport.library') then
call addlib('rexxsupport.library',0,-30,0)
call openport('LhaDirStoneD-handler'portno)
dopus addtrap copy 'LhaDirStoneD-handler'portno
dopus addtrap move 'LhaDirStoneD-handler'portno
dopus addtrap delete 'LhaDirStoneD-handler'portno
dopus addtrap parent 'LhaDirStoneD-handler'portno
dopus addtrap makedir 'LhaDirStoneD-handler'portno
do forever
if waitpkt('LhaDirStoneD-handler'portno) then do
packet=getpkt('LhaDirStoneD-handler'portno)
event=getarg(packet,0)
handle=getarg(packet,1)
name=getarg(packet,2)
user=getarg(packet,3)
if upper(event)='MAKEDIR' then do
cmd='MAKEDIR'
address command 'Run >NIL: <NIL: rx DOpus5:arexx/LhADir.StoneD' cmd portname handle '"'name'"'
end
if upper(event)='COPY' then do
cmd='COPY'
address command 'Run >NIL: <NIL: rx DOpus5:arexx/LhADir.StoneD' cmd portname handle '"'name'"'
end
if upper(event)='MOVE' then do
cmd='MOVE'
address command 'Run >NIL: <NIL: rx DOpus5:arexx/LhADir.StoneD' cmd portname handle '"'name'"'
end
if upper(event)='DELETE' then do
cmd='DELETE'
address command 'Run >NIL: <NIL: rx DOpus5:arexx/LhADir.StoneD' cmd portname handle '"'name'"'
end
if upper(event)='PARENT' then do
lister query handle path
winpath=result
oldpath=getarg(packet,4)
test=upper(winpath)
newpos=lastpos('/',winpath,lastpos('/',winpath)-1)
newpos1=lastpos(':',winpath,lastpos('/',winpath)-1)
if newpos1>newpos then newpos=newpos1
newpath=left(winpath,newpos)
lister read handle '"'newpath'"' force
address command 'Run >NIL: <NIL: rx DOpus5:arexx/LhADir.StoneD GETDIR' portname ' ' handle '""'
end
if upper(event)='DOUBLECLICK' then do
lister query handle entry '"'name'"' stem fileinfo.
if fileinfo.type>0 then do /* it's a dir */
name=name'/'
cmd='GETDIR'
end
else
if pos(upper(right(name,4)),'.Lha')>0 then /* archive in an archive */
cmd='GETDIR'
else
cmd='DOUBLECLICK'
address command 'Run >NIL: <NIL: rx DOpus5:arexx/LhADir.StoneD' cmd portname handle '"'name'"'
end
if upper(event)='INACTIVE' then do
lister query handle path
winpath=result
oldpath=getarg(packet,4)
test=upper(winpath)
if winpath=left(oldpath,length(winpath))&(pos('.Lha/',test)>0) then /* user did parent */
address command 'Run >NIL: <NIL: rx DOpus5:arexx/LhADir.StoneD GETDIR' portname handle '""'
else
address command 'Delete >NIL: T:LhaDir.list'handle 'QUIET' /* remove temp file */
end
if upper(event)='DROP' then do
name=strip(name,'t')
if right(name,1)=':' then
lister read handle '"'name'"' force /* user dropped a volume icon */
end
call reply(packet,0)
end
end